package document

// CreateFileInfoRequest 创建文件信息请求
type CreateFileInfoRequest struct {
	FileName        string   `json:"file_name" form:"file_name" binding:"required"`
	FileDescription string   `json:"file_description" form:"file_description"`
	Remark          string   `json:"remark" form:"remark"`
	FileAuthor      string   `json:"file_author" form:"file_author"`
	S3Links         []string `json:"s3_links" form:"s3_links"` // S3文件链接
}

// UpdateFileInfoRequest 更新文件信息请求
type UpdateFileInfoRequest struct {
	ID              int      `json:"id" form:"id" binding:"required"`
	FileName        string   `json:"file_name" form:"file_name" binding:"required"`
	FileDescription string   `json:"file_description" form:"file_description"`
	Remark          string   `json:"remark" form:"remark"`
	FileAuthor      string   `json:"file_author" form:"file_author"`
	S3Links         []string `json:"s3_links" form:"s3_links"` // S3文件链接
}

// ListFileInfoRequest 获取文件信息列表请求
type ListFileInfoRequest struct {
	PageNum    int    `json:"page_num" form:"page_num" binding:"required,min=1"`
	PageSize   int    `json:"page_size" form:"page_size" binding:"required,min=1,max=100"`
	FileName   string `json:"file_name" form:"file_name"`
	FileAuthor string `json:"file_author" form:"file_author"`
}

// FileInfoResponse 文件信息响应
type FileInfoResponse struct {
	ID              int      `json:"id"`
	FileName        string   `json:"file_name"`
	FileDescription string   `json:"file_description"`
	Remark          string   `json:"remark"`
	FileAuthor      string   `json:"file_author"`
	S3Links         []string `json:"s3_links"` // S3文件链接
	CreatedAt       string   `json:"created_at"`
	UpdatedAt       string   `json:"updated_at"`
}

// ListFileInfoResponse 文件信息列表响应
type ListFileInfoResponse struct {
	List     []*FileInfoResponse `json:"list"`
	Total    int64               `json:"total"`
	PageNum  int                 `json:"page_num"`
	PageSize int                 `json:"page_size"`
}
